//! Memory management utilities for Koto
//!
//! Currently, only reference-counted pointers without cycle detection are implemented.
//! The intent is that this crate can be expanded in the future with implementations of
//! `Ptr` and `PtrMut` that offer alternative memory management strategies.
//!
//! Making custom GC types that support trait objects or other DSTs is currently only
//! possible with nightly Rust, while the stabilization of DST custom coercions
//! [is pending](https://github.com/rust-lang/rust/issues/18598)
//!
//! Until then, GC implementations for Ptr/PtrMut could be introduced with a nightly-only feature.

#![warn(missing_docs)]

#[cfg(all(feature = "arc", feature = "rc"))]
compile_error!("A single memory management feature can be enabled at a time");

mod address;
mod ptr;
mod ptr_impl;
mod ptr_mut;

pub use address::Address;
pub use ptr::*;
pub use ptr_mut::*;
